
02.03.2022, 13:24
|
Интересующийся
|
|
Регистрация: 18.02.2022
Сообщений: 22
|
|
AJAX и вопросы по js
У меня такие вопросы на которые я не знаю ответов, подскажите или направьте в нужное русло пожалуйста.
Вопросы:
1) Файлы обработки ajax-запросов не должны быть доступны из браузера, если это не ajax-запрос;
2) Если js отключен, то форма отправиться не может;
3) Доступ к файлу базы должен осуществляться только на стороне php. (это вроде я сделал, что обращение к бд у меня исключительно на сервере и нигде больше, вопрос заключается в том, чтобы обезопасить проникновение в файл бд другими способами)
* имеется ввиду, что при выполнении предыдущего пункта, к файлу нельзя будет обращаться, например, через ajax запрос.
4) Файл базы не должен быть доступен по прямому урл (как это реализовать? бд у меня - это файл json)
Последний раз редактировалось Andrew2108, 02.03.2022 в 13:31.
|
|

02.03.2022, 14:03
|
 |
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,279
|
|
Сообщение от Andrew2108
|
бд у меня - это файл json
|
Это не БД.
Сообщение от Andrew2108
|
Если js отключен, то форма отправиться не может
|
Форма может отправляться и без использования скриптов.
<form>
<input name='test' />
<button>Отправить</button>
</form>
Данные этой формы будут отправлять без скриптов, т.к. их просто нет.
|
|

02.03.2022, 14:46
|
Интересующийся
|
|
Регистрация: 18.02.2022
Сообщений: 22
|
|
Как сделать так, чтобы она не могла отправится ?
|
|

02.03.2022, 15:56
|
 |
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,279
|
|
Сообщение от Andrew2108
|
Как сделать так, чтобы она не могла отправится ?
|
Форма?
Написать скрипт...
Andrew2108, есть мнение... (с)
Что ты собрался рыть подземных ход на чердак. От того и вопросы у тебя не совсем понятные.
Строго говоря это даже не вопросы, а просто перечень каких-то утверждений.
Тут бы узнать какую задумку ты хочешь реализовать...
Тогда и варианты решения этого можно было бы предложить.
|
|

02.03.2022, 18:39
|
Интересующийся
|
|
Регистрация: 18.02.2022
Сообщений: 22
|
|
Это я сделал.
● Доступ к файлу базы должен осуществляться только на стороне php.
* имеется ввиду, что при выполнении предыдущего пункта, к файлу нельзя будет обращаться, например, через ajax запрос.
Как реализовать это вы не знаете ?
|
|

02.03.2022, 19:21
|
 |
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,279
|
|
Сообщение от Andrew2108
|
Доступ к файлу базы должен осуществляться только на стороне php.
|
Если файл не будет доступен по каким-либо УРЛ - это будет выполнено.
Но это все должен обеспечить ты сам на своем сервере.
|
|

18.04.2022, 12:58
|
Новичок на форуме
|
|
Регистрация: 15.04.2022
Сообщений: 1
|
|
добрый день.
Добрый день. Я новичек в програмировании как на Си и вообще нуб JS.
Так у меня и не получилось использовать технологию JSON.
На сервере вормирую посыку при запросе браузера. Сама посылка формируется
void serializeToJSON (char *outArrData, const measTemp *tempData ){
char temp1[]="\"temp1\":";
char temp2[]="\"temp2\":";
char temp3[]="\"temp3\":";
sprintf (outArrData, "{%s%s,%s%s,%s%s}",temp1,tempData->sensorOnetemp,temp2,tempData->sensorTwotemp,temp3,tempData->sensorThreetemp);
}
По вашему примеру написал сначала попробовал принять чисто строку написав в скрипте
xhr.responseType = "text"; все работает получаю стандартную на мой взгляд JSON строку
в косоле выводиться {"temp1":+28.563,"temp2":+28.563,"temp3":"+temp "} 192.168.1.193:39:17
когда по вашему примеру JS пишу
function Timer1() { // функция для запроса данных
xhr.open("GET", "content.html?r=" + Math.random(), true); //Math.random() - защита от кеширования
xhr.responseType = "json"; // преобразование ответа JSON в обьект JS
xhr.onload = function(oEvent) {
var data=xhr.responseText;
var jsonResponse = JSON.parse(data);
console.log(data);
document.getElementById('sensor1').innerHTML = jsonResponse["temp1"];
document.getElementById('sensor2').innerHTML = jsonResponse["temp2"];
document.getElementById('sensor3').innerHTML = jsonResponse["temp3"];
}
xhr.send(null);
idTimer1 = setTimeout("Timer1()", 1000);
}
в консоль выводит
Uncaught DOMException: XMLHttpRequest.responseText getter: responseText is only available if responseType is '' or 'text'. 192.168.1.193:22
Подскажите что я делаю не так?
|
|
|
|